# 什么是字符串   - 字符集合（字符序列）
# 特殊的字符串   - 没有字符   ''

#创建字符串，使用引号（单引号、双引号、三引号）

mystr = ''    # 空字符串
mystr = "hello"   
print(mystr)  


'''
字符串中每个字符都分配一个数字，称之为索引，左边从0开始，右边从-1开始
    h   e   l   l   o
    0   1   2   3   4       正索引
   -5  -4  -3  -2  -1       负索引 
'''
#使用[]获取字符串中的字符 
#单个字符
# print(mystr[0])  
# print(mystr[-5])  
# print(mystr[4])
# print(mystr[-1])   

# print(mystr[5])   #报错，索引超出范围了   正索引最大取值=字符个数-1

# [m:n] 获取起始索引到结束索引中间的多个字符，注意不包含结束索引的字符  - 切片
print(mystr[0:4])   #前闭后开 包括起始索引的字符，但不包括结束索引的字符
print(mystr[:4])    #如果不写起始索引，默认为0
print(mystr[1:])    #如果不写结束索引，取到字符串的最后一个字符
print(mystr[0:5:2])   #[起始索引:结束索引:步长]

# len() - 获取字符串中字符的个数
print(mystr,"字符个数：",len(mystr))   


# 字符串创建后不能修改，但是变量可以修改（变量存放的是字符串的地址值）
print(id(mystr))     #id()   返回变量在内存中的地址 2631280156976
mystr="python"
print(mystr)   
print(id(mystr))    #变量在内存中的地址:2631280124144

# \ 转义字符  
# \n    - 换行符   算一个字符
mystr = "line1\nline2\nline3"
# \t    - 制表符           
mystr = "w1\tw2\tw3"     
# \\    -  普通的\
mystr = "a\\b\\c"   
print(len(mystr))      
# \'    -  普通的'
# \"    -  普通的"        
mystr = "\"我\"的"                   
print(mystr)  

# 操作字符串的运算符
#  +   字符串的拼接
# mystr = 'hello' + 'python'
# print(mystr)  

# *    字符串*整数   复制字符串
# mystr = "hello"*20
# print(mystr) 

# in 成员运算符  字符串中如果包含给定的部分字符串，返回True 否则返回False
mystr="hello python"
print("java" in mystr)

# not in 成员运算符  字符串中如果不包含给定的部分字符串，返回True 否则返回False
print("java" not in mystr) 

# %  格式化
'''
字符串格式化符号
%f  格式化浮点数字
%d  格式化整数
%s  格式化字符串 
'''
name = 'zhang'
age = 20
pi = 3.1415926

print("My name id %s" % name)   
print("I am %d" % age) 
print("pi = %.3f" % pi)

print("%d" % int('123')) 







